DIR
이 명령어는 디렉토리에 있는 파일 목록을 열람하기 위하여 사용하는 것으로, DIR을 옵션이나 매개변수 없이 사용하면 디스크의 볼륨 레이블과 시리얼 번호, 하나의 디렉토리 혹은 확장자를 포함하는 파일명, 파일의 크기, 파일이 마지막으로 수정된 날짜와 시간, 목록으로 만들어진 전체 파일의 숫자 및 각 파일의 크기의 총합, 그리고 디스크 상에 남아 있는 여유 공간을 바이트 단위로 보여준다.
각각의 파일에 타임 필드를 부여하고 이를 기준으로 파일 목록을 디스플레이하는 옵션을 제공한다.
■ 명령어 위치
Command.com에 포함된 내부 명령어
■ 사용법

DIR | [drive:][path][filename] [/P] [/W] [/S] [/B] [/L] [/C] [/O[[:]sort]] [/A[[:]attrib]] [/V] [/4]

■ 옵션 및 매개변수

[drive:][path] | 파일 목록을 열람할 드라이브와 디렉토리를 지정한다. 생략하면 현행 디렉토리의 목록을 보여준다.
filename | 파일 목록을 보고자 하는 파일명을 지정한다. 여기서는 와일드 카드(* 혹은 ?)를 사용하여 일련의 파일군을 지정할 수 있다. 파일을 생략하면 모든 파일과 서브 디렉토리의 이름을 보여준다.
/p | 파일 목록을 한 화면 단위로 보여준다. 다음 화면을 보려면 아무 키나 누른다.
/w | 한 행에 파일이나 디렉토리를 5개씩 확장하여 보여준다. 이 경우 파일 크기와 날짜, 시간은 나타나지 않는다.
/s | 지정된 디렉토리와 모든 서브 디렉토리에서 지정된 파일 목록을 보여준다.
/b | 한 행에 확장자를 포함하는 파일명과 드라이브 이름, 디렉토리 이름등 절대 경로를 보여준다. 단, 파일의 크기나 날짜, 시간 등의 정보를 하나도 보여주지 않는다. 즉, /w 옵션과 비슷하지만 한 행에 하나의 파일만 보여준다는 점에 차이가 있다. 만약, /w 옵션과 /b 옵션을 동시에 지정하면 /w 옵션은 무시되고 /b 옵션이 사용된다.
/L | 정렬되지 않은 디렉토리 이름과 파일명을 소문자로 보여준다. 그러나, 확장명은 소문자로 표시하지 않는다.
/c[h] | 공간늘림 프로그램을 사용하여 압축된 디스크의 압축률을 8K 클러스터 단위로 보여준다. /ch 옵션을 사용하면 공간늘림 프로그램을 사용해 압축된 디스크의 압축률을 8K 클러스터 단위로 보여준다. 이 옵션을 사용하는 경우 /w, /b 옵션은 무시된다.
/o[[:]sort] | 이 옵션은 DIR이 파일 목록을 정렬하여 보여주도록 하는 옵션이다. 만약, 이 옵션을 생략하면 DIR 명령어는 해당 디렉토리 내에 기록되어 있는 순서대로 파일 목록을 보여준다. 만약, /o 옵션만 사용하고 정렬 방법을 지정하지 않으면 알파벳순으로 정렬된 디렉토리를 먼저 보여주고, 그 다음에 알파벳 순서로 정렬된 파일 목록을 보여준다. 옵션 /o와 매개변수 사이의 콜론(:)은 임의로 생략할 수 있다. 다음은 sortorder에 사용할 수 있는 변수이다. 이 값은 둘 이상 조합하여 사용할 수 있지만 스페이스로 분리해서는 안된다. n 파일명의 알파벳 순서로 정렬하여 보여준다. -n 파일명의 알파벳 역순으로 정렬하여 보여준다. e 확장명의 알파벳 순서로 정렬하여 보여준다. -e 확장명의 알파벳 역순으로 정렬하여 보여준다. d 가장 먼저 만들어진 것부터 정렬하여 보여준다. -d 가장 나중에 만들어진 것부터 정렬하여 보여준다. s 파일 크기가 가장 작은 것부터 큰 순으로 정렬하여 보여준다. -s 파일 크기가 가장 큰 것부터 작은 순으로 정렬하여 보여준다. g 디렉토리 목록을 파일 목록보다 먼저 보여준다. -g 파일 목록을 디렉토리 목록보다 먼저 보여준다.
/a[[:]attrib] | 사용자가 지정한 파일 속성을 가진 디렉토리와 파일만 보여준다. 만약 이 옵션을 생략하면 DIR은 숨김 속성과 시스템 속성을 가진 파일을 제외한 모든 파일을 보여준다. /a 옵션과 파일 속성 사이의 콜론(:)은 임의로 생략할 수 있고, 속성을 둘 이상 조합하여 사용할 수 있지만 스페이스로 분리해서는 안된다. 다음은 파일 속성에 사용할 수 있는 변수에 대한 설명이다. h 숨김 속성을 가진 파일만 보여준다. -h 숨김 속성이 없는 파일을 모두 보여준다. s 시스템 속성을 가진 파일만 보여준다. -s 시스템 속성이 없는 파일을 모두 보여준다. d 디렉토리만 보여준다. -d 디렉토리를 제외하고 파일만 보여준다. a 기록 속성을 가진 파일만 보여준다. -a 기록 속성이 없는 파일을 모두 보여준다. r 읽기 전용 속성을 가진 파일만 보여준다. -r 읽기 전용 속성이 없는 파일을 모두 보여준다.
/v | 자세한(Verbose) 모드로 정렬하여 보여준다. 파일명, 크기, 디스크 할당 크기, 수정한 날짜, 액세스한 날짜, 파일 속성, 긴 파일 이름을 볼 수 있다.
/4 | 연도를 4자리 수로 보여준다. /V 옵션과 함께 사용되면 무시된다.

■ 참고 사항
☞ DIR에 와일드 카드 사용하기
DIR 명령어에서도 다른 명령어와 마찬가지로 와일드 카드(* 혹은 ?)를 사용할 수 있다. 즉 와일드 카드를 사용하여 일련의 파일군을 보여주도록 지정할 수 있다.
☞ 표시할 파일 속성 지정하기
DIR 명령어를 이용하여 각각의 파일이 가지고 있는 파일의 속성을 지정하여 목록을 볼 수 있다.
즉, DIR 명령어의 /a 옵션은 지정된 파일 속성을 가진 모든 파일을 보여준다.
파일 속성을 지정하는 경우에도 둘 이상의 속성을 동시에 지정할 수 있다. 예를 들어 DIR 명령어에 /a:r-h 옵션을 지정한 경우에는 읽기 전용 속성을 가진 파일 중에서 숨김 속성이 없는 파일만 보여준다. 마찬가지로 /ar-h도 같은 효과를 갖는다.
☞ 표시할 파일 목록 정렬하기
파일 목록을 표시할 때 정렬 순서를 지정할 수 있다.
정렬 순서는 파일명, 확장자, 날짜와 시간, 파일 크기를 기준으로 지정할 수 있다. 만약, 하나 이상의 값을 지정한 경우에는 먼저 첫 번째 값으로 정렬한 다음 두 번째 정렬값으로 파일을 정렬하여 보여준다.
예를 들면, DIR 명령어에 /o:e-s나 /oe-s 옵션을 사용한다면 먼저 확장명을 기준으로 정렬한 다음 동일한 확장명의 경우에는 파일 크기가 가장 작은 것부터 큰 순으로 정렬하여 보여준다. 이 경우 확장명이 없는 파일이 가장 먼저 나타나고, 다음으로 디렉토리명이 나타나며, 마지막으로 확장명를 가진 파일이 나타난다.
☞ 방향 전환 기호(>)와 파이프(|) 사용하기
DIR의 결과를 파일이나 주변 장치로 방향을 전환하기 위해 방향 전환 기호(>)를 사용할 수 있고, DIR 결과를 다른 명령어에 보내기 위해 파이프(|)를 사용할 수 있다. 단, 파이프를 사용할 경우에는 파일명만 다른 명령어로 전달되도록 /b 옵션을 사용해야 하는 경우도 있다. 모든 파일명이 사용자가 지정한 filename에 맞도록 DIR이 현행 디렉토리와 서브 디렉토리를 찾도록 지정하려면 /b와 /s 옵션을 사용할 수 있다. 이 경우 DIR은 그것이 찾는 각각의 filename에 대하여 라인당 한 경로로 드라이브 글자와 디렉토리 이름, 파일명과 확장자만 보여준다.
만약, 방향 전환이나 파이프를 사용하려면 AUTOEXEC.BAT 파일에 TEMP 환경 변수를 설정해야 한다.
☞ DIR 명령어의 환경 설정하기
DIR 명령어를 사용하는데 있어 공통적으로 많이 사용하는 변수와 옵션들에 대해서는 Set 명령어를 이용하여 AUTOEXEC.BAT 파일에 미리 DIR 환경을 설정할 수 있다.
DIR 환경을 미리 설정하는 경우에도 파일의 경로와 이름을 포함하여 DIR 명령어에 사용되는 모든 옵션을 조합하여 사용할 수 있다.
예를 들어, DIR 환경을 디폴트 형식으로 '/p /s /b /o:e-s' 옵션을 지정하여 사용하려면 AUTOEXEC.BAT 파일에 다음과 같은 명령어 라인을 추가시킨다.
set dircmd=/p /s /b /o:e-s
위의 예처럼 지정한 경우 DIR 명령을 실행하면 페이지 단위로(/p), 서브 디렉토리까지(/s), 확장명 순서로 정렬한 다음(/o:e), 동일한 확장자를 갖는 파일은 크기의 역순으로 정렬하여(/o:-s) 디렉토리와 파일명만(/b) 보여줄 것이다.
위의 예에서는 파일의 크기나 날짜/시간이 나타나지 않으므로 이를 나타내고자 한다면 DIR 명령을 사용할 때 다음과 같이 /b 옵션을 무시하도록 지정해야 한다. 즉, DIR 환경 변수에서 지정한 옵션을 취소하려면 각 옵션 앞에 마이너스(-) 기호를 붙여야 한다.
dir /-b
만약, DIR 환경 변수에 대한 모든 설정을 해제하려면 프롬프트 상에서 다음과 같이 SET 명령어를 사용한다.
set dircmd=
새로운 변수나 옵션을 DIR 환경 변수로 설정하려면 프롬프트 상에서 Set 명령어를 사용하여 DIR 환경 변수를 변경할 수 있다.
이렇게 새로 변경된 DIR 환경 변수는 다음에 Set 명령어를 이용하여 환경 변수를 변경하거나 다시 컴퓨터를 시동하기 전까지는 모든 후속 DIR 명령에 적용된다.
DIR 명령어의 환경 변수의 설정 상태를 알아보려면 프롬프트 상에서 Set 명령어를 사용한다.
도스에서는 Set 명령이 실행되면 모든 환경 변수와 그 목록을 보여준다.
■ 사용 예
DIR 명령어를 사용하여 C 드라이브의 모든 파일과 서브 디렉토리의 목록을 전부 보여주되 디렉토리 단위로 알파벳 순서로 정렬하고 디렉토리명과 확장명를 포함하는 파일명만 표시하려면 다음과 같이 DIR 명령어를 사용한다.
dir c:\ /s /o:ne /b
위의 예에서 DIR은 C 드라이브의 루트 디렉토리에 있는 서브 디렉토리를 먼저 나타낸 다음 각 파일을 이름과 확장명 순으로 정렬한다. 그리고 파일의 크기와 날짜, 시간을 제외한 디렉토리와 파일명만 보여준다.
루트 디렉토리가 끝나면 다음에 있는 서브 디렉토리의 내용을 동일한 방법으로 계속한다.
위의 예에서 파일명과 확장명만 표시하고 디렉토리의 이름을 생략하도록 하려면 다음과 같이 DIR 명령어를 사용한다.
dir c:\ /s /o:ne /b /a:-d
위의 예에서 디렉토리 목록을 프린트로 인쇄하려면 방향 전환 기호(>)를 이용한다.
이것은 DIR 명령어가 어떤 옵션으로 지정되어 있든지 관계없이 PRN이나 LPTn을 사용하면 된다.
PRN은 컴퓨터에 연결된 프린터가 하나인 경우에 사용할 수 있고, LPTn은 다수의 프린터가 연결되어 있는 경우에 LPT1, LPT2, LPT3 등의 각기 다른 프린터 포트로 출력하는 경우에 사용한다.
dir c:\ /s/o:ne/b/a:-d > prn
혹은
dir c:\ /s/o:ne/b/a:-d > lpt1
위의 예에서 프린터로 출력하는 대신에 디렉토리 목록을 아스키 파일(텍스트 파일)로 저장하려면 PRN이나 LPTn 대신 목록을 저장할 파일 이름을 지정한다.
다음의 예는 DIR 결과를 C:\HWP\DATA 디렉토리에 있는 DIRHWP.TXT 파일로 저장하라는 것이다.
dir *.hwp > c:\hwp\data\dirhwp.txt
위의 예에서 C:\HWP\DATA 디렉토리에 DIRHWP.TXT 파일이 있으면 기존의 파일을 삭제하고 새로운 내용으로 덮어쓰고, 파일이 없으면 새로운 파일을 만든다.
그러나 C:\HWP\DATA라는 디렉토리가 없는 경우 다음과 같은 메시지가 나타나고 DIRHWP.TXT를 만들지 않는다.
File creation error
C드라이브 상에 있는 모든 디렉토리(/s) 내의 파일 중에서 TXT라는 확장자를 가진 모든 파일을 파일명을 기준으로 정렬(/o:n)하여 표시하는데, 그 방법으로는 한 라인당 다섯개(/w)의 파일을 나타내고 한 화면이 넘어가는 경우에는 잠시 중단(/p)하도록 하려면 다음과 같이 DIR 명령어를 사용한다.
dir c:\*.txt /o:n /s /w /p
위의 경우에서 확장 형식으로 각 디렉토리에 있는 TXT 확장자를 가진 모든 파일을 알파벳순으로 정렬하여 표시하고 한 화면을 초과하는 경우에는 사용자가 임의의 키를 누르기 전까지 대기한다.
DIR 명령어는 일반적으로 시스템 속성이나 숨김 속성을 가진 파일은 표시하지 않는다.
그러나 파일 속성을 기준으로 표시할 수 있도록 하는 /a 옵션을 사용하면 숨김 파일이나 시스템 파일의 목록을 DIR 명령어를 사용하여 살펴볼 수 있다.
다음의 예는 C드라이브에 있는 모든 숨김 파일이나 시스템 파일을 표시하라는 것이다.
dir c:\ /s/a:hs
중요한 데이터를 백업하는데 있어 중요한 지표가 되는 파일의 기록 속성을 이용하면 백업하기 전에 백업될 파일의 목록을 미리 볼 수 있다.
즉, 기록 속성을 가진 파일만 백업하는 경우에 DIR 명령의 파일 속성을 이용한 목록 보기 옵션을 이용하여 목록을 보는 것이다.
다음의 예는 C드라이브에 있는 HWP라는 확장자를 갖는 모든 파일 중에서 기록 속성을 가진 파일만 표시하도록 하는 것이다.
dir c:\*.hwp /s /a:a /p